Q.A PIC32MZ評価ボード
Q. | 評価ボードを購入しないでサンプルソフトを使用する場合 何か制約がありますか? |
A. | ありません。 評価ボードを購入しないでご自分でハードを製作されてご使用になっても結構です。 尚、サンプルソフトの中に評価ボードを購入しないと <解説>の閲覧 と プロジェクトファイルがダウンロードできないものがあります。 具体的にはサンプルソフトの一覧表の中で背景色が灰色()になっているサンプルソフトがこの対象となっています。 ( → URL) |
Q. | サンプルソフト(プロジェクトファイル)はどのフォルダにコピーしてつかうのですか? |
A. | ① ハーモニーがインストールしてある"C:\microchip\harmony\v2_04\app"フォルダーに下に3階層(注)のサブフォルダーをつくります。 フォルダー名は英数字のユーザーがわかりやすい分類名をつけます。 以下の例は_myWork、sample、Basicと命名した場合です "C:\microchip\harmony\v2_04\apps\_myWork\sample\Basic" ② サンプルのプロジェクトファイルをダウンロードして解凍します。 ここでは例として"SP I 制御によるフラッシュメモリ読み書き"から 032 SPI Flash RW Dynamic_SPI.zipをダウンロードします。解凍すると以下のようなフォルダとなります。 "032 SPI Flash RW Dynamic_SPI\032 SPI Flash RW Dynamic_SPI\firmware\……" ③ ②の青字部のフォルダを①のBasicフォルダの下位フォルダとします。 "C:\microchip\harmony\v2_04\apps\_myWork\sample\Basic \032 SPI Flash RW Dynamic_SPI\firmware\……" (注)3階層を2階層や4階層など異なった階層にしてしまうとコンパイルできません。 ★ 他の階層で使いたい場合 → URL 但し、プロジェクトのファルダーパスによっては最初に以下の警告がでますが、Yes とすると使用できる場合もあるようです。 ただこの場合、プロジェクト内の相対パスを記述している2つのconfigurations.xmlのファイルはもとのままとなっています。 <参考> ダウンロード用のサンプルプロジェクトは下記階層のフォルダで作成されています。 |
Q. | Harmonyのマイクロチップサンプルソフトを階層が異なるフォルダにコピーした場合、MHCを動作させ、また再コンパイルできる方法をおしえてください。 |
A. | "C:\microchip\harmony\v2_03b\apps\fs\sqi_fat" 上記のspi_fatというフォルダには、マイクロチップのサンプルプロジェクトファイルがあります。 このspi_fatフォルダを以下のように harmonyからみてことなる階層のフォルダにコピーするとパスが通らないことから、プロジェクトのMHCが動作しなくなってコンパイルもできなくなってしまします。 "C:\microchip\harmony\v2_03b\apps\Folder1\Folder2\Folder3\spi_fat" この例ではharmonyフォルダからみてspi_fatフォルダは2階層深いフォルダにコピーされています。 この場合の対応について説明します。対策として コピー先のフォルダーにある2つのconfigurations.xmlと云うテキストファイルを修正する必要があります。 1つはnbproject\configurations.xmlで もう1つはsystem_config\カテゴリー名\configuration.xmlのconfigurations.xmlファイルです。 パスの深さ(階層)変更に伴う変更箇所はこの2つのファイルを修正するだけです。 ①"C:\microchip\harmony\v2_03b\apps\Folder1\Folder2\Folder3\sqi_fat\firmware\sqi_fat.X\nbproject\configurations.xml" 上記のconfigurations.xmlをテキストエディタで開きます。 <itemPath>../../../../../framework/driver/tmr/drv_tmr.h</itemPath>のようにパスを指定している部分に於いて <itemPath>../../../../../../../framework/driver/tmr/drv_tmr.h</itemPath>のように../を2つ追加します。 ②1行づつ変更すると大変なのでテキストエディタの置換機能をつかいます。 すべて置換したらファイルを保存します。 ③C:\microchip\harmony\v2_03b\apps\Folder1\Folder2\Folder3\sqi_fat\firmware\src\system_config\pic32mz_ef_sk\configuration.xml" 同様に上記のconfigurations.xmlをテキストエディタで開きます。 下記のようにパスを指定している部分を <HarmonyPath dnOrder="0" path="../../.."/>から <HarmonyPath dnOrder="0" path="../../../../.."/>に../を2個追加します。(1ヶ所)) また <Library dnOrder="0" value="../../../../../bin/framework/peripheral/PIC32MZ2048EFM144_peripherals.a"/>から <Library dnOrder="0" value="../../../../../../../bin/framework/peripheral/PIC32MZ2048EFM144_peripherals.a"/>に../を2個追加します。(1ヶ所) ④各1ヶ所なので置換機能を利用しなくても簡単に置換できます。 置換したらファイルを保存します。 (注)どちらのconfigurations.xmlファイルも修正箇所が何か所になるかはプロジェクトのファイルの内容次第です。system_config下にあるconfigurations.xmlファイルも修正箇所が3ヶ所以上になることもあります。 |
Q. | INT043(INT070)のプロジェクトファイルを再コンパイルしてしてタッチ動作も含めさせ特に不具合もなく動作させることができました。 ところがINT035のプロジェクトファイルを再コンパイルして動作させようとしたところ グラフィック液晶に表示はするのですがタッチ動作ができなくなってしまいました。 何故でしょうか? どのように対処すればよいのでしょうか? | |
A. | タッチ用ドライバーファイルdrv_touch_generic.h と drv_touch_generic.cを INT043(INT070)のプロジェクト作成の過程でINT043(INT070)用に変更した為 INT035のプロジェクトを立ち上げた際にINT043(INT070)用のドライバーが読み込まれてしまっている為です。 タッチ用ドライバーファイルdrv_touch_generic.h
と drv_touch_generic.cをINT035用に変更してください。
|
Q. | 評価ボードの回路図は 納品時に付属しますか ? |
A. | 付属しません。 回路図は以下のURLの中からダウンロードしてください。 必要であればPDFファイルからハードコピーをとってください。
回路図のダウンロードは評価ボードを購入しない方でもできます。 http://www.ys-labo.com/Shop/PIC32MZ_EvaluationB_Assy/EB_sum.html 下記部分です。 ■ 回路図 ■ 評価ボード全体 PIC32MZ評価ボード MZ100-A001 全体の回路図(→PDFファイル)です。 ■ キバン単体 ① マザーボード回路図(→PDFファイル) マザーボード単体の回路図です。 ②汎用モジュール評価ボード回路図(→PDFファイル) 汎用モジュール評価ボード単体の回路図です。 |
Q. | SDカードの読み書きができません。 考えられる原因にどのようなものがありますか? |
A. | ・ 書き込み速度が遅いSDカードでは読み書きができない場合があるようです。 経験では、Class⑩ではすべて読み下記ができています。 ・ USBのMSDクラスのプログラムをPICに書き込んだ場合、 デバイスによっては PICkitの接続を遮断してまたPICの電源を一度OFFにしてから再度電源をONにしないとプログラムが有効にならない場合があるようです。 ・ マイクロSDカードは スタンダード(サイズ)SDカードよりはるかに安定して読み書きができます。 HarmonyのSDライブラリはスタンダードSDカードの場合若干不安定といった感じを私はもっていいます。 <追記>参照 → URL |
Q. | Harmony v2.04で、変化割込みを使用すると "リセットしないと動作を開始しない" と云うバグがあるようですが、対策があれば教えてください。 | ||||
A. | Harmony v2.04には 変化割込みを使用するとしようするポートによっては 電源投入後プログラムを一度リセットしないと動作を開始しないと云うバグがあるようです。 対応としては、ソフトウェアリセットを行うと電源投入直後からPICが特に問題なく動作できます。 ソフトウェアリセットはどこでもよいわけではなく以下のように system_init.cのSYS_Initialize()の SYS_PORTS_Initialize(); 実行直後に行うとよいようです。 ソフトウェアリセットは電源投入後ソフトウェアリセットが行われていない場合だけ実行するようにします。 実験による試行錯誤の結果 発見したものです。 試した数個のプログラムではすべて有効でした。
<追記> 他の対処方法としては、以下のようなものもあります。 考え方としては CN(Change Notification)に関するコードはMHCを使わずに手書きすると云うものです。 具体的には、 1. MHCを用いて CNについてもチェックを入れソースコードを作成する。 2. sys_ports_static.c のCNポートがあるポート設定を一式コピーしてapp.cのvoid APP_Initialize ( void )の中に貼り付ける。 3. system_config.hの中からCNを定義する部分をコピーして貼り付ける。すぐ上に #undef を追記して 3.が読み込めるようにする。 4. CNについてのチェックをはずしてソースコードをgenerateする。 詳細は 右記のプロジェクトファイル(→ URL)を精読願います。 |
Q. | Harmony Ver.2 から Harmony Ver.3に乗り替えましたが、 プロジェクトファイル生成の処理時間が非常に長くなって困っています。 何か対策はありますか? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A. | 私は、Harmony Ver.2から Ver.3に乗り替えたとき Ver.3はあまりにも遅いのでPCを買い替えました。 これにより処理速度は大幅に改善されストレスを感じることはなくなりました。 主な変更点は以下です。 ① CPU : i 7 - 4790 → i 7 - 9700K ② RAM : 8GB → 32GB ③ OS・アプリケーションのインストール、 データの保存 : HDD → SSD やはり一番効果があったのは SSDの採用だろうと思っています。 SSDのread/Write速度も500 - 600MB/sec ~ 2500 - 3500MB/secとありましたが現時点で最速のものを選びました。 以下に、Harmony Ver.3に係る新旧PCの処理時間を測定してみた実験結果です。 参考にしていただければ幸いです。 Harmony V.3 プロジェクトファイル
|
Q. | マイクロチップの評価ボードCuriosity PIC32MZ EF 2.0 Development Boardにプログラムが書き込めません。 対応は? | ||||||
A. | ① MPLABXで メニューから Tool -> Option で Optionダイアログを開きます。 ② Embeddedアイコンをクリック -> Generic Settingsタブをクリックします。 ③ Exclude device checks for Kits にチェックを追加します。
|
Q. | Project ManifestのライブラリパッケージバージョンとLocal Packageのライブラリパッケージバージョンを同じにするにはどのようにすればよいのでしょうか? | ||
A. | 例として core 3.9.2を core3.8.1に戻す場合についての手順を説明します。 |
Q. | XC32 V.2.xxでは問題なかった 文字列を含む sprintf で、XC32 V.3xxでコンパイルエラーが発生した。 | |
A. |
../src/app.c:471:49: error: '%s' directive writing up to 63 bytes into a region of size 42 [-Werror=format-overflow=] sprintf(Buf2,"I am fine. Answerfor (%s)", Buf1); ^~ ~~~~ ../src/app.c:471:13: note: 'sprintf' output between 24 and 87 bytes into a destination of size 64 sprintf(Buf2,"I am fine. Answerfor (%s)", Buf1);③ char Buf2[64] → char Buf2[128] に 修正するとコンパイルができる。 XC32 V2.xx では、%s の所要メモリサイズはカウントされないが、XC32 V3.xx では %sは Buf[64] のサイズ、すなわち64バイトと コンパイラはカウントするようである。 したがって Buf2はその文を加味したメモリサイズが必要となる。 |